(function ($) {
    var GETCLASSES = "http://imoocnote.calfnote.com/inter/getClasses.php";
    var GETCLASSCHAPTER = "http://imoocnote.calfnote.com/inter/getClassChapter.php";
    var GETCLASSNOTE = "http://imoocnote.calfnote.com/inter/getClassNote.php";

    $.getJSON(GETCLASSES, {
        curPage: 1
    }, function (data) {
        renderTemplate("#class-template", data.data, '#classes ul');
        renderTemplate("#pag-template", formatPag(data), '#pag');
        bindPageEvent()
        // var t = $("#class-template").html();
        // var f = Handlebars.compile(t)
        // var h = f(data.data)
        // $('#classes ul').html(h)
        //  渲染分页
        // var pag = $("#pag-template").html();

        // var f = Handlebars.compile(pag)

        // var h = f(formatPag(data))
        // console.log(h, 111)
        // $('#pag').html(h)
    })
    //请求页码
    function refreshClasses(curPage) {
        $.getJSON(GETCLASSES, {
            curPage: curPage
        }, function (data) {
            renderTemplate("#class-template", data.data, '#classes ul');
            renderTemplate("#pag-template", formatPag(data), '#pag');

        })
    }
    //jq委托时间
    function bindPageEvent() {
        $("#pag").delegate('li.clickable', 'click', function () {
            $this = $(this);
            refreshClasses($this.data('id'))
        })
    }
    //显示课程
    function bindClassEvent() {
        $("#classes").delegate('li', 'click', function () {
            $this = $(this);
            var cid = $this.data('id');
            // $.getJSON(GETCLASSCHAPTER, { "cid": cid }, function (data) {
            //     // console.log(data, 'jack')
            //     renderTemplate("#chapter-template", data, '.chapterdiv');
            //     showNote(true)
            // })
            // $.getJSON(GETCLASSNOTE, { "cid": 1 }, function (data) {
            //     console.log(data, 'jack')
            //     renderTemplate("#note-template", data, '.notediv');
            // })
            $.when($.getJSON(GETCLASSCHAPTER, { "cid": cid }),
                $.getJSON(GETCLASSNOTE, { "cid": 1 }))
                .done(function (cdata, ndata) {
                    // console.log(cdata, ndata)
                    renderTemplate("#chapter-template", cdata[0], '.chapterdiv');
                    renderTemplate("#note-template", ndata[0], '.notediv');
                    showNote(true)
                })
        })
    }
    bindClassEvent()
})(jQuery)

// 渲染模板
function renderTemplate(templateSelector, data, htmlSelector) {

    var pag = $(templateSelector).html();
    var f = Handlebars.compile(pag)
    var h = f(data)
    $(htmlSelector).html(h)
}


Handlebars.registerHelper('equal', function (v1, v2, option) {
    if (v1 == v2) {
        return option.fn(this)
    } else {
        return option.inverse(this)
    }
})


//格式化时间


Handlebars.registerHelper("formatDate", function (value) {
    if (!value) {
        return "";
    }
    var d = new Date(value);
    var year = d.getFullYear();
    var month = d.getMonth() + 1;
    var date = d.getDate();
    var hour = d.getHours();
    var minute = d.getMinutes();
    var second = d.getSeconds();
    var str = year + "-" + month + "-" + date + " " + hour + ":" + minute + ":" + second;

    return str;
});

Handlebars.registerHelper('long', function (v1, option) {
    if (v1.indexOf('小时') == -1) {
        return option.fn(this)
    } else {
        return option.inverse(this)
    }

})

Handlebars.registerHelper('addone', function (v1) {
    return v1 + 1;
})

Handlebars.registerHelper('pag', function (v1, v2, option) {
    // console.log(v1, v2, option)
})
$('.overlap').on('click', function () {
    showNote(false)
})
// 显示笔记本
function showNote(show) {
    if (show) {
        //$('.overlap,.notedetail').css('display', 'block')
        $('.overlap,.notedetail').fadeIn()
    } else {
        $('.overlap,.notedetail').fadeOut()
        // $('.overlap,.notedetail').css('display', 'none')
    }
}

// 构建分页逻辑所需要的数据
// registerHelper的使用原则：不要在里面拼接大段的HTML代码。
// 类似本利中的分页组件，最好是构造一份适合Handlebars的数据，然后传给它，来生成html。
function formatPag(pagData) {
    var arr = [];
    var total = parseInt(pagData.totalCount);
    var cur = parseInt(pagData.curPage);

    // 处理首页的逻辑：<<
    var toLeft = {};
    toLeft.index = 1; // index代表点击按钮的时候可以跳转到的页面
    toLeft.text = '&laquo;'; // text代表button的文本

    if (cur != 1) {
        toLeft.clickable = true;
    }
    arr.push(toLeft);

    // 处理到上一页的逻辑
    var pre = {};
    pre.index = cur - 1;
    pre.text = '&lsaquo;';

    if (cur != 1) {
        pre.clickable = true;
    }

    arr.push(pre);

    // 处理到cur页前的逻辑
    if (cur <= 5) {
        for (var i = 1; i < cur; i++) {
            var pag = {};
            pag.text = i;
            pag.index = i;
            pag.clickable = true;
            arr.push(pag);
        }
    } else {
        // 如果cur>5，那么cur前的页要显示为...
        var pag = {};
        pag.text = 1;
        pag.index = 1;
        pag.clickable = true;
        arr.push(pag);
        var pag = {};
        pag.text = '...';
        arr.push(pag);
        // 当前页前面2个页数显示出来
        for (var i = cur - 2; i < cur; i++) {
            var pag = {};
            pag.text = i;
            pag.index = i;
            pag.clickable = true;
            arr.push(pag);
        }
    }

    // 处理当前页
    var pag = {};
    pag.text = cur;
    pag.index = cur;
    pag.cur = true;
    arr.push(pag);

    // 处理cur页后的逻辑
    if (cur >= total - 4) {
        for (var i = cur + 1; i <= total; i++) {
            var pag = {};
            pag.text = i;
            pag.index = i;
            pag.clickable = true;
            arr.push(pag);
        }
    } else {
        // 如果cur < total - 4, 那么cur后的页面显示为...
        // 显示以当前页后面的2个页数
        for (var i = cur + 1; i <= cur + 2; i++) {
            var pag = {};
            pag.text = i;
            pag.index = i;
            pag.clickable = true;
            arr.push(pag);
        }

        var pag = {};
        pag.text = '...';
        arr.push(pag);
        var pag = {};
        pag.text = total;
        pag.index = total;
        pag.clickable = true;
        arr.push(pag);
    }

    // 处理到下一页的逻辑
    var next = {};
    next.index = cur + 1;
    next.text = '&rsaquo;';

    if (cur != total) {
        next.clickable = true;
    }

    arr.push(next);

    // 处理到尾页的逻辑
    var toRight = {};
    toRight.index = total; // index代表点击按钮的时候可以跳转到的页面
    toRight.text = '&raquo;'; // text代表button的文本

    if (cur != total) {
        toRight.clickable = true;
    }
    arr.push(toRight);
    //  console.log(arr)
    return arr;
}